// pages/buy/index.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    coupons: [],
    price: 0
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    this.searchCoupons()
  },
  // 下拉刷新
  onPullDownRefresh: function () {
    wx.showNavigationBarLoading();
    this.searchCoupons()
    // 模拟接口延迟
    setTimeout(function () {
      wx.hideNavigationBarLoading();
      wx.stopPullDownRefresh();
    }, 2000);
  },
  //   搜索优惠卷
  searchCoupons() {
    // 参给接口的参数
    let params = {
      buyStatus: 0,
      validDate: new Date()
    }
    // 模拟后台返回数据
    var result = {
      code: 200,
      data: [{
          couponTemplateId: 100,
          areaName: "校园街停车场",
          couponName: 'xx优惠券',
          price: 20.00,
          minNum: 10, // 起售数量
          addNum: 2, // 每次增加数量
          validDate: "2023-11-31",
          description: '优惠券详细使用说明', // 优惠券详细使用说明
          tags: [{
              tag: '满50减5',
              orderNum: 0,
              description: '订单金额满10元减5元'
            },
            {
              tag: '可分享',
              orderNum: 1,
              description: '此优惠券可分享给他人'
            }
          ]
        },
        {
          couponTemplateId: 101,
          areaName: "同和街停车场",
          couponName: 'xx优惠券',
          price: 10.00,
          minNum: 10, // 起售数量
          addNum: 2, // 每次增加数量
          validDate: "2023-11-30",
          description: '优惠券详细使用说明', // 优惠券详细使用说明
          tags: [{
              tag: '满3小时减1小时',
              orderNum: 0,
              description: '订单收费时长停满3小时减1小时'
            },
            {
              tag: '不可分享',
              orderNum: 1,
              description: '此优惠券不可分享给他人'
            }
          ]
        }
      ]
    }
    // 循环添加num属性
    result.data = result.data.map((r) => {
      r.num = 0
      return r
    })
    this.setData({
      coupons: result.data
    })
    this.getPrice()
  },
  // 加减数量
  setNum(e) {
    let {
      type,
      minnum,
      addnum,
      index,
      num
    } = e.currentTarget.dataset
    if (type == 1) {
      // 加数量
      num >= minnum ? (num += addnum) : (num = minnum)
    } else if (num > minnum) {
      num -= addnum
    } else {
      num = 0
    }
    this.setData({
      [`coupons[${index}].num`]: num
    })
    this.getPrice()
  },
  // 计算价格
  getPrice() {
    let price = 0
    this.data.coupons.forEach(d => {
      price += d.price * d.num
    })
    this.setData({
      price
    })
  },
  // 立即支付
  getNewCouponsPayInfo() {
    // 获取所有数量大于0
    let params = this.data.coupons.filter(d => {
      return d.num > 0
    })
    params = params.map(d => {
      return {
        couponTemplateId: d.couponTemplateId, // 优惠券模板id
        num: d.num // 选中的数量
      }
    })
    console.log(params)
    wx.showModal({
      title: '立即支付',
      content: JSON.stringify(params)
    })
    this.payment()
  },
  // 调用微信支付
  payment() {
    var result = {
      code: 200,
      data: {
        appId: '微信分配的APPID',
        timeStamp: '时间戳',
        nonceStr: '随机串',
        package: '数据包',
        signType: '签名方式',
        paySign: '签名数据',
        partnerid: '子商户的商户号',
        prepayid: '预支付交易会话ID',
        mweb_url: '微信H5支付中间页面URL'
      }
    }
    wx.requestPayment({
      nonceStr: result.data.nonceStr,
      package: result.data.package,
      paySign: result.data.paySign,
      timeStamp: result.data.timeStamp,
      signType: result.data.signType,
    })
  },
  // 展开收起
  setMore(e) {
    console.log(e)
    const {
      index,
      boo,
      type
    } = e.currentTarget.dataset
    this.setData({
      [type + '[' + index + '].showMore']: boo
    })
  },
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})